package com.zkh.myutils.database.data.handler;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.zkh.myutils.database.data.DBOperateUtils;

/**
 * 处理数据方式，将数据转为Map集合后返回，多条记录只读取第一条数据。适用于单行多列。
 * @author zkh
 */
public class MapHandler implements Handler<Map<String, Object>> {

	//是否转小写
	private boolean toLowerCase = false;
	/**
	 * 构造方法
	 */
	public MapHandler(){}
	/**
	 * 构造方法
	 * @param toLowerCase 数据库字段名是否转为小写
	 */
	public MapHandler(boolean toLowerCase){
		this.toLowerCase = toLowerCase;
	}
	
	/**
	 * 处理数据的具体方法
	 */
	public Map<String, Object> handle(ResultSet rs) throws SQLException {
		//获取数据
		List<Map<String, Object>> maplist = DBOperateUtils.getMapList(rs, toLowerCase);
		//有数据，返回第一条数据
		if(maplist.isEmpty()){
			return new HashMap<>();
		}
		return maplist.get(0);
	}

}
